package main

import (
	"fmt"
	"math"
	"strings"
)

func BinaryFormat(n int32) string { //BinaryFormat是一个函数 n是值 int32代表n的类型是int32   string表示BinaryFormat是字符串类型
	a := uint32(n)               //有符号转为无符号   把n转为uint32类型 即为a := unint32类型的n
	sb := strings.Builder{}      //把多个短字符串拼接成一个长字符串
	c := uint32(math.Pow(2, 31)) //最高位是1，其他位全是0 int类型最大值 表示最大范围
	for i := 0; i < 32; i++ {
		if a&c > 0 { //如果a或者c 大于0
			sb.WriteString("1") //往sb后面拼接“1”
		} else {
			sb.WriteString("0") //往sb后面拼接“0”
		}
		c >>= 1
	}
	return sb.String() //返回长度为32的字符串
}

func main() {
	fmt.Println(BinaryFormat(30)) //调用BinaryFormat转换30的二进制

}
